1. Field of the Invention
The present invention relates to client-server applications. More specifically, the present invention relates to a method and apparatus for invoking a plug-in that is dynamically associated with a database operation.
2. Related Art
Large organizations often employ specialized databases, such as directory servers, to serve as an abstraction layer between clients and shared resources. Directory servers typically store user-specific information (e.g., user permissions) and policy information. Furthermore, a directory server usually supports a number of operations (e.g., add, bind, compare, etc.) on the stored information which can be invoked by sending a request to the directory server.
A common technique for extending operations at a directory server involves statically binding a plug-in to an operation. When a directory server receives a request to perform the operation, the directory server performs the operation by invoking the associated plug-in.
In a large organization, different groups may require the directory server to perform an operation in a slightly different manner based on the groups' specific requirements. For example, one group may want all search results to be paged and sorted, whereas another group may want raw search results.
Unfortunately, prior art directory servers do not enable a client to control the functionality of an operation. Hence, in prior art techniques, different groups within an organization may have to settle for a compromised set of functionalities that do not satisfy the requirements of any of the groups. Moreover, each group may have to implement the additional functionality (e.g., paging and sorting) at the client side which can cause code duplication. Additionally, maintaining multiple directory servers which support different sets of operations can be expensive, time-consuming, and less secure.
Hence, what is needed is a method for extending the functionality of a specialized database without the problems listed above.